package com.junzhiit.nengji.dao;

import java.util.List;

import com.bainaeco.framework.base.dao.BaseDAO;
import com.junzhiit.nengji.bo.SystemUserBO;
import com.junzhiit.nengji.model.Function;
import com.junzhiit.nengji.model.SystemUser;

public interface SystemUserDAO extends BaseDAO<SystemUser> {

	public List<SystemUserBO> findAll(SystemUser systemUser, int pageNumber, int maxPageRow);

	public int getTotalCount(SystemUser systemUser);

	public int getMobilePhoneCount(String mobilePhone);

	public SystemUser findByMobilePhone(String mobilePhone);

	public SystemUser login(String mobilePhone, String password);

	/**
	 * 
	 * TODO 根据systemId 查询用户
	 * 
	 * @author PeterMo
	 * @time 2018年1月20日 下午2:09:22
	 * @return List<SystemUser>
	 */
	public List<SystemUser> getListBySystemId(String systemId);

	/**
	 * 
	 * TODO 检查邮箱是否存在
	 * 
	 * @author PeterMo
	 * @time 2018年1月26日 下午2:00:05
	 * @return int
	 */
	public int checkEmail(String email);

	/**
	 * 
	 * TODO 根据邮箱查询
	 * 
	 * @author PeterMo
	 * @time 2018年2月1日 下午7:23:13
	 * @return SystemUser
	 */
	public SystemUser findByEmail(String email);

	/**
	 * 
	 * TODO 获取账号拥有功能权限
	 * 
	 * @author FebRosy
	 * @time 2018年3月21日 下午3:11:49
	 * @return List<Function>
	 */
	public List<Function> getSystemUserFunctions(String systemUserId);

	/**
	 * 
	 * TODO 账号冻结
	 * 
	 * @author FebRosy
	 * @time 2018年3月21日 下午3:29:38
	 * @return boolean
	 */
	public boolean updateSystemUserStatus(String id, int status);
	
	/**
	 * 
	 * TODO 根据ShopsLocatedId查询
	 * 
	 * @author Qjen
	 * @time 2018年5月26日 上午10:23:18
	 * @return SystemUser
	 *
	 */
	public SystemUser findByShopsLocatedId(String shopsLocatedId);

	/**
	 * 根据帐号类型+systemId查找帐号记录
	 * @author Dave.lai
	 * @param systemId 
	 * @param platform 帐号类型（0 - 商家, 1 - 代理商, 2 - 总部）
	 * @return SystemUser
	 */
	public SystemUser findBySystemId(String systemId, int platform);
}
